1. Field of the Invention
The present invention relates to an information processing apparatus in which specific output control information is converted to output information and the generated output information is sent to an external apparatus, an information processing method in which specific output control information is converted to output information and the generated output information is sent to an external apparatus, and a recording medium storing a program which can be read by a computer and in which specific output control information is converted to output information and the generated output information is sent to an external apparatus.
2. Description of the Related Art
Information processing systems including a printer which operates according to printing information sent from a host computer have been proposed. Various printing systems have also been proposed utilizing a printer with a printer control function. The printer control function includes a printer description language (PDL) and printer control commands. Software for the printer such as a printer driver stored in the host computer, a printer spooler, and a print processor are also included.
In a conventional printing system, processing in a printer driver is highly dependent on application software and an operating system (OS), which is basic software, such as Windows (a trademark of Microsoft Corporation) and UNIX. The main job of the printer driver is basically to convert printing information sent from the system to PDL codes of the target printer.
In the printer driver (for Windows 3.1) corresponding to a laser-beam printer called LBP-404F manufactured by Canon Inc., a user specifies the size of an extended memory mounted on the printer at the menu (graphic user interface) to switch the output mode between a standard mode (processing at a resolution of 300 dpi) and a high-resolution mode (processing at a resolution of 600 dpi).
A user's decision determines actual switching. The printer driver neither automatically specifies the most suited setting nor sends the most suited PDL code, with the load of the printer being taken into consideration. The load is determined according to information obtained by asking the printer about its memory capacity. The printer driver does not perform these kinds of printing-data processing.
In addition, the printer driver does not perform processing for reviewing the converted codes in PDL of the target printer and for re-converting them to other PDL codes so as to reduce the amount of codes to be transmitted to the printer or to reduce the time required for printing, with the same drawing result being obtained.
Windows NT and Windows 95 (trademarks of Microsoft Corporation) are provided with processes called a printer spooler and a printer processor. These processes are dedicated to storing printing information data, created by the printer driver or a system (GDI), in storage means and to send the stored printing information data to the printer.
A PDL code string created by the printer driver is conventionally sent to the printer with information not processed by the printer spooler or the printer processor. Whether a document is sequentially printed from page 1 or from the last page in the reverse order may be determined. In this case, the printer driver basically controls the printing order.
In some printing data processing, even when reverse-order printing is specified, the printer driver forms printing data from page 1 in the same way as in standard printing, printing data for all pages are stored in the printer spooler, and the printer processor controls the order of data transmission in units of pages when it sends the data to the printer.
In this case, the order of data transmission is just changed in units of pages. PDL codes themselves created by the printer driver are not processed or converted.
In many cases, the printer driver routinely converts printing information into PDL codes in a one-to-one correspondence manner. Processing is not changed according to the contents of data sent from the system and buffered. This may be caused by a restriction in the system in which the printer driver, one of processes, is not allowed to use the file system.
The above conventional printing system has the following problems.
Printer control codes sent to the printer greatly differ according to a drawing sequence and a drawing process the application software uses. As a result, the codes may include many redundant code strings such as those for repeating simple drawing instructions, or may significantly reduce performance to obtain a printing result.
As shown in FIG. 11A, for example, an object is divided into very small units to perform a drawing (in this case, a rectangle drawing). This can be collectively performed as shown in FIG. 11B. Code strings described in FIGS. 11A and 11B are based on a PDL called LIPS created by Canon Inc. The printer driver does not intentionally draw three divided rectangles in FIG. 11A, but the object is divided in the printing process of an application software and a drawing process.
To collect these divided rectangles in processing of the printer driver, it is to some extent necessary to pre-read printing information sent from the system. It is, however, very difficult to pre-read when processing the printer driver, and in some cases, it is impossible due to a restriction in the system.
Generally, the printer driver plays a role in converting drawing instructions and page control instructions, which are standardized in the system and sent from the basic software (OS), into printer control instructions which each printer has, such as those in a PDL. These instructions are created by application software (such as word-processing and spreadsheet software) running under the basic software. Therefore, many redundant printer control instructions are caused by a drawing process or a printing process in the application software.
It is currently difficult, however, to make a drawing process and a printing process dedicated to a certain printer in an application software in terms of technical reasons and other various points. In addition, in many cases software manufacturers are not willing to develop such application software. They believe a correct output is sufficient, and they are not inclined to reduce the time required for printing and to improve image quality.
On the other hand, the printer driver also has a similar problem. Even when it includes a process dedicated to specific application software, since the software is frequently upgraded, the process does not fit the software of a new version.
It is difficult to solve problems in some systems because the printer driver cannot determine which application software sends data to the driver or, conversely, the application software cannot determine which printer is currently connected.
In a network environment, since a plurality of users share one printer with a plurality of the host computers, it is required that problems be solved at the printer server rather than at each host computer having the printer driver.